The 1990's decade has been marked by a societal technological revolution driven by the convergence of the data processing industry with the consumer electronics industry. Like all such revolutions, it unleased a gigantic ripple effect of technological waves. The effect has in turn driven technologies which have been known and available but relatively quiescent over the years. Two of these technologies are the internet-related distribution and object-oriented programming systems. Both of these technologies are embodied in the object-oriented Java Programming system. The computer and communications industries have extensively participating in the development and continual upgrading of the Java system. For details and background with respect to the Java system, reference may be made to a typical text, "Just Java", 2nd Edition, Peter van der Linden, Sun Microsystems, 1997. The convergence of the electronic entertainment and consumer industries with data processing exponentially accelerated the demand for wide ranging communications distribution channels and the World Wide Web or internet which had quietly existed for over a generation as an loose academic and government data distribution facility reached "critical mass" and commenced a period of phenomenal expansion which has not as yet abated.
With the expanded accessibility of tens of thousands of programmers to each other, not to mention to potential users of such programs via the expanded internet client base, an obvious need became apparent: cooperative programming systems wherein program developers could coact to continuously expand and enhance existing programs in a distributed programming environment. Also, users could readily obtain and apply these developed programs. Object-oriented programming which also had been virtually languishing for a generation offered the solution. With its potentially interchangeable objects or units within which both data attributes and functions were stored in a predefined uniform framework as well as the predefined object interfaces with each other, object-oriented programming systems have found acceptance as the programming system for the internet. In all areas of the data processing, communications as well as the electronic entertainment and consumer industries having anything to do with the internet, there has been a substantial movement to Java, the Sun Microsystems originated object-oriented programming system.
While the above described advantages of object-oriented programming with respect to the collective and cooperative programming are clear, there are potential disadvantages in a programming system where literally thousands of program developers and users are continually making changes in the programs dynamically. These changes could range in complexity from minor "cosmetic" changes to new program subroutines to new entire programs. Depending on the type and nature of the program, every addition, subtraction or modification of any object in a program could have an insignificant or a profound effect on the program. In effect, every one of such object changes produces a new version of the program. With an object-oriented programming system going full swing on the internet, there could be hundreds of thousands of potential of lesser or more significant changes to objects in any particular program or program group. Actually each change could be said to produce a new version of the program or routine. Thus, to keep track of every "version" in a program having an extensive history and contributor/ user base could be quite burdensome. On the other hand, the programming discipline is one in which traditionally programming changes intended for private or limited group use can become in widespread demand. In this connection, object oriented software componentry will permit more people to build software programs and routines and will shorten the software development cycle and make it more dynamic. Although the traditional software developers and administrators will continue to write the bulk of object oriented programs which are distributed and used over the internet, the individual users will also be developing their own custom software since the object oriented developmental tools will be more readily available over the internet and more easy to use. It follows that as software will be combined in new often unforeseen ways, there is an increased likelihood that the individual developments will drive many of the programs into inoperable states for certain purposes or under certain conditions. Here, the recording of program property data identifying the program versions where such potentially undesirable developments would be likely to occur could make it easier for program developers and users to recover from software modifications which did not operate as expected or which created problems with other related user software systems.
The present invention provides an implementation which selectively captures program property data identifying critical versions in network distributed object-oriented programming systems modification development without imposing a great burden on the system or its users.